@echo off
chcp 65001 >nul
cd /d "%~dp0"

echo ========================================
echo    浮动覆盖层问题快速修复
echo ========================================
echo.
echo 用户反馈：服务监控显示"Overlay: Running"但看不到悬浮窗
echo.

echo [步骤 1/5] 检查当前状态...
echo [检查] 服务器端口 8989...
netstat -an | find ":8989" | find "LISTENING" >nul 2>&1
if %errorLevel% equ 0 (
    echo [✅ OK] 服务器正在运行在端口 8989
) else (
    echo [❌ ERROR] 服务器未运行，请先启动服务器
    pause
    exit /b 1
)

echo [检查] Electron 进程...
tasklist /fi "imagename eq electron.exe" | find "electron.exe" >nul 2>&1
if %errorLevel% equ 0 (
    echo [⚠️ FOUND] 发现 Electron 进程正在运行
    tasklist /fi "imagename eq electron.exe" /fo table | findstr electron.exe
) else (
    echo [❌ NOT FOUND] 没有发现 Electron 进程
)

echo.
echo [步骤 2/5] 终止可能的僵尸进程...
taskkill /f /im electron.exe >nul 2>&1
timeout /t 2 >nul
echo [✅ OK] 进程清理完成

echo.
echo [步骤 3/5] 检查覆盖层文件...
if not exist "floating_overlay\main.js" (
    echo [❌ ERROR] floating_overlay\main.js 文件不存在
    pause
    exit /b 1
)

if not exist "floating_overlay\node_modules\electron" (
    echo [❌ ERROR] Electron 未安装在 floating_overlay 目录
    echo [INFO] 正在尝试安装...
    cd floating_overlay
    npm install electron --save-dev
    if %errorLevel% neq 0 (
        echo [❌ ERROR] Electron 安装失败
        cd ..
        pause
        exit /b 1
    )
    cd ..
    echo [✅ OK] Electron 安装完成
) else (
    echo [✅ OK] Electron 已安装
)

echo.
echo [步骤 4/5] 使用改进的方式启动覆盖层...
cd floating_overlay

echo [INFO] 正在启动浮动覆盖层...
echo [INFO] 启动参数：强制显示 + 调试模式
echo [INFO] 如果窗口仍不可见，请检查任务栏

:: 创建启动脚本
echo @echo off > temp_start.bat
echo cd /d "%CD%" >> temp_start.bat
echo echo [启动] 浮动覆盖层正在启动... >> temp_start.bat
echo echo [提示] 窗口将在3秒内显示 >> temp_start.bat
echo echo [提示] 如果看不到窗口，请检查任务栏或使用Alt+Tab >> temp_start.bat
echo npx electron . --no-sandbox --disable-web-security --show --force-device-scale-factor=1 >> temp_start.bat
echo echo [完成] 覆盖层已关闭 >> temp_start.bat
echo pause >> temp_start.bat

:: 运行启动脚本
start "浮动覆盖层" temp_start.bat

cd ..

echo.
echo [步骤 5/5] 验证启动...
echo [INFO] 等待启动过程...
timeout /t 5 >nul

tasklist /fi "imagename eq electron.exe" | find "electron.exe" >nul 2>&1
if %errorLevel% equ 0 (
    echo [✅ SUCCESS] Electron 进程已启动
    echo [INFO] 进程信息：
    tasklist /fi "imagename eq electron.exe" /fo table | findstr electron.exe
) else (
    echo [❌ FAILED] Electron 进程启动失败
)

echo.
echo ========================================
echo            修复完成！
echo ========================================
echo.
echo 如果您仍然看不到悬浮窗，请尝试：
echo.
echo 💡 常见解决方案：
echo 1. 检查任务栏：是否有 Electron 图标
echo 2. 使用 Alt+Tab：切换到悬浮窗
echo 3. 检查屏幕：窗口可能在屏幕边缘
echo 4. 多显示器：窗口可能在其他显示器上
echo 5. 透明度：窗口可能过于透明
echo.
echo 🔧 深度诊断：
echo   运行：floating_overlay\diagnose_overlay.bat
echo.
echo 🚀 改进启动：
echo   运行：floating_overlay\start_overlay_improved.bat
echo.
echo 📋 调试模式：
echo   运行：floating_overlay\debug_start.bat
echo.
echo 当前监控改进：
echo   一键启动.bat 的监控逻辑已优化
echo   现在会正确显示覆盖层的真实状态
echo.
echo 按任意键结束...
pause >nul

:: 清理临时文件
if exist "floating_overlay\temp_start.bat" del "floating_overlay\temp_start.bat" >nul 2>&1
